print(type("fish") is str)  # True

print(type(250))  # <class 'int'>
print(int)  # <class 'int'>

# 由上面2行代码可知 int 跟 type(int) 是一样的
# 而我们已经指定通过 int("520")可以通过字符串创建一个整数
# 所以
# type(250)("520") 就相当于 int("520")
result = type(250)("520")
print(result)  # 520

print("======================================================================")

# 创建一个字符串
str_1 = type("FishC")(3.14)
# 相当于 str(3.14)
print(str_1)
print(str(3.14))

print("======================================================================")

# 创建一个列表
list_1 = type([])("FishC")
print(list_1)  # ['F', 'i', 's', 'h', 'C']

print("======================================================================")

# 创建一个元组
tuple_1 = type(())([1, 2, 3, 4, 5])
print(tuple_1)  # (1, 2, 3, 4, 5)

print("======================================================================")

# 创建一个字典
dict_1 = type({}).fromkeys("Python")
print(dict_1)  # {'P': None, 'y': None, 't': None, 'h': None, 'o': None, 'n': None}

print("======================================================================")


# 创建一个自定义类
class C:

    def __init__(self, x):
        self.x = x


c = C(250)
print(c)  # <__main__.C object at 0x10928ef70>
d = type(c)(520)
# d 也是一个类型 C 的对象
print(d)  # <__main__.C object at 0x10928eee0>

print(d.__class__)  # <class '__main__.C'>
